﻿<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>WinMenuSelectItem</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link href="../css/commands.css" rel="stylesheet" type="text/css">
<link href="../css/print.css" rel="stylesheet" type="text/css" media="print">
</head>
<body>

<h1>WinMenuSelectItem</h1>

<p>调用匹配指定条件的窗口的菜单项。</p>

<p class="CommandSyntax">WinMenuSelectItem, WinTitle, WinText, Menu [, SubMenu1, SubMenu2, SubMenu3, SubMenu4, SubMenu5, SubMenu6, ExcludeTitle, ExcludeText] </p>
<h3>参数 </h3>
<table border="1" width="100%" cellspacing="0" cellpadding="3" bordercolor="#C0C0C0">
  <tr>
    <td width="15%">WinTitle</td>
    <td width="85%">目标窗口的标题或标题中的部分文字（匹配模式由 <a href="SetTitleMatchMode.htm">SetTitleMatchMode</a> 决定）。如果省略其它 3 个窗口参数，默认目标是 <a href="../LastFoundWindow.htm">上一次匹配窗口</a> 。如果这个参数使用字母 A ，同时省略其它 3 个窗口参数，则以当前激活的窗口作为目标。要用窗口的 class 名进行匹配，使用 <em>ahk_class 精确 class 名</em>（Window Spy 中可以显示 class 名）。要用窗口的 <a href="Process.htm">进程标识符（PID）</a>进行匹配，使用 <em>ahk_pid %PID变量%</em> 。要用 <a href="GroupAdd.htm">窗口组</a> ，使用 <em>ahk_group 组名</em> 。要用窗口的 <a href="WinGet.htm">唯一 ID</a> 进行匹配，使用 <em>ahk_id %ID变量%</em> 。要减小检测范围，使用 <a href="../LastFoundWindow.htm#multi">多重条件</a> ，例如：<em>My File.txt ahk_class Notepad</em></td>
  </tr>
  <tr>
    <td>WinText</td>
    <td>如果使用这个参数，则它应该是目标窗口中某个文本元素的子字符串（在 Window Spy 中会显示出窗口中的文本元素）。隐藏文本只有在 <a href="DetectHiddenText.htm">DetectHiddenText</a> 设置为 ON 的时候才能检测到。</td>
  </tr>
  <tr>
    <td>Menu</td>
    <td>顶级菜单的名称，例如 File ，Edit ，View 。也可以使用 1&amp;  表示第一个菜单项，2&amp; 表示第二个菜单项，等等。</td>
  </tr>
  <tr>
    <td>SubMenu1</td>
    <td>需要选择的菜单的名称或位置（参见 <em>Menu</em>）。</td>
  </tr>
  <tr>
    <td>SubMenu2</td>
    <td>如果 <em>SubMenu1</em> 本身还有子菜单，那么这个参数就是子菜单项的名称或位置。</td>
  </tr>
  <tr>
    <td>SubMenu3</td>
    <td>同上。</td>
  </tr>
  <tr>
    <td>SubMenu4</td>
    <td>同上。</td>
  </tr>
  <tr>
    <td>SubMenu5</td>
    <td>同上。</td>
  </tr>
  <tr>
    <td>SubMenu6</td>
    <td>同上。</td>
  </tr>
  <tr>
    <td>ExcludeTitle</td>
    <td>标题中包含该参数指定的文字的窗口将被除外。</td>
  </tr>
  <tr>
    <td>ExcludeText</td>
    <td>文本元素中包含该参数指定的文字的窗口将被除外。</td>
  </tr>
</table>

<h3>ErrorLevel</h3>
<p>如果出现错误，<a href="../misc/ErrorLevel.htm">ErrorLevel/错误等级</a> 设置为 1 ，否则为 0 。</p>
<h3>注意</h3>
<p>使用这个命令的时候，目标窗口不需要处于激活状态。但是，某些窗口也许要求处于 <a href="WinRestore.htm">非最小化</a> 状态。</p>
<p>这个命令对于使用非标准菜单栏的程序 <strong>无效</strong> 。例如 Microsoft Outlook 和 Outlook Express ，它们使用工具栏来伪装成菜单栏。在这种情况下，推荐使用 <a href="ControlSend.htm">ControlSend</a> 或 <a href="PostMessage.htm">PostMessage</a> 命令。</p>
<p>菜单的名称是不区分大小写的（例如，File-&gt;Save 等同于 file-&gt;save ），同时也不需要使用“&amp;”来表示菜单名称中的下划线字母（例如，&amp;File 等同于 File ）。</p>
<p>在菜单名称参数中同样可以指定菜单位置，这样做是为了支持那些没有文本的菜单（例如仅包含图片而没有文字的菜单项）。1&amp; 表示第一个菜单（例如 File），2&amp; 表示第二个菜单（例如 Edit），以此类推。菜单中的分割线也算一个菜单项，在参数中使用菜单位置的时候要注意。</p>
<p>窗口的标题和窗口中的文字是大小写敏感的。要检测隐藏窗口，必须打开 <a href="DetectHiddenWindows.htm">DetectHiddenWindows</a> 。</p>

<h3>相关命令</h3>
<p><a href="ControlSend.htm">ControlSend</a>, <a href="PostMessage.htm">PostMessage</a></p>
<h3>示例</h3>
<pre class="NoIndent"><em>; 选择记事本中的 “打开”菜单：</em>
WinMenuSelectItem, Untitled - Notepad, , File, Open

<em>; 和上面例子一样，不过使用的是菜单位置：</em>
WinMenuSelectItem, Untitled - Notepad, , 1&amp;, 2&amp;</pre>

</body>
</html>
